<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content=
    "application/xhtml+xml; charset=iso-8859-1" />
    <title>
      Building KDE Frameworks 5 (KF5)
    </title>
    <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
    "text/css" media="print" />
  </head>
  <body class="blfs" id="blfs-2020-04-02">
    <div class="navheader">
      <h4>
        Beyond Linux<sup>�</sup> From Scratch <span class="phrase">(System
        V</span> Edition) - Version 2020-04-02
      </h4>
      <h3>
        Chapter&nbsp;30.&nbsp;KDE Frameworks 5
      </h3>
      <ul>
        <li class="prev">
          <a accesskey="p" href="kf5-intro.html" title=
          "KDE Frameworks 5 Pre-installation Configuration">Prev</a>
          <p>
            KDE Frameworks 5 Pre-installation Configuration
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="kf5-apps.html" title=
          "KDE Frameworks 5 Based Applications">Next</a>
          <p>
            KDE Frameworks 5 Based Applications
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="kf5.html" title=
          "Chapter&nbsp;30.&nbsp;KDE Frameworks 5">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Beyond Linux� From Scratch     (System V Edition) - Version 2020-04-02">
          Home</a>
        </li>
      </ul>
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <h1 class="sect1">
        <a id="kf5-frameworks" name="kf5-frameworks"></a>Building KDE
        Frameworks 5 (KF5)
      </h1>
      <p>
        KDE Frameworks 5 is a collection of libraries based on top of Qt5 and
        QML derived from the monolithic KDE 4 libraries. They can be used
        independent of the KDE Display Environment (Plasma 5).
      </p>
      <p>
        This package is known to build and work properly using an LFS-9.1
        platform.
      </p>
      <p>
        The instructions below build all of the KDE Frameworks packages in
        one step by using a bash script.
      </p>
      <h3>
        Package Information
      </h3>
      <div class="itemizedlist">
        <ul class="compact">
          <li class="listitem">
            <p>
              Download (HTTP): <a class="ulink" href=
              "http://download.kde.org/stable/frameworks/5.67">http://download.kde.org/stable/frameworks/5.67</a>
            </p>
          </li>
          <li class="listitem">
            <p>
              Download MD5 sum: See Below
            </p>
          </li>
          <li class="listitem">
            <p>
              Download size: 266 MB
            </p>
          </li>
          <li class="listitem">
            <p>
              Estimated disk space required: 1.1 GB (237 MB installed)
            </p>
          </li>
          <li class="listitem">
            <p>
              Estimated build time: 17 SBU (using parallelism=4)
            </p>
          </li>
        </ul>
      </div>
      <h3>
        KF5 Dependencies
      </h3>
      <h4>
        Required
      </h4>
      <p class="required">
        <a class="xref" href="../general/boost.html" title=
        "Boost-1.72.0">Boost-1.72.0</a>, <a class="xref" href=
        "extra-cmake-modules.html" title=
        "extra-cmake-modules-5.67.0">extra-cmake-modules-5.67.0</a>,
        <a class="xref" href="../pst/docbook.html" title=
        "docbook-xml-4.5">docbook-xml-4.5</a>, <a class="xref" href=
        "../pst/docbook-xsl.html" title=
        "docbook-xsl-nons-1.79.2">docbook-xsl-1.79.2</a>, <a class="xref"
        href="../general/giflib.html" title="giflib-5.2.1">giflib-5.2.1</a>,
        <a class="xref" href="../x/libepoxy.html" title=
        "libepoxy-1.5.4">libepoxy-1.5.4</a>, <a class="xref" href=
        "../general/libgcrypt.html" title=
        "libgcrypt-1.8.5">libgcrypt-1.8.5</a>, <a class="xref" href=
        "../general/libjpeg.html" title=
        "libjpeg-turbo-2.0.4">libjpeg-turbo-2.0.4</a>, <a class="xref" href=
        "../general/libpng.html" title="libpng-1.6.37">libpng-1.6.37</a>,
        <a class="xref" href="../general/libxslt.html" title=
        "libxslt-1.1.34">libxslt-1.1.34</a>, <a class="xref" href=
        "../server/lmdb.html" title="lmdb-0.9.24">lmdb-0.9.24</a>, <a class=
        "xref" href="phonon.html" title="Phonon-4.11.1">phonon-4.11.1</a>,
        <a class="xref" href="../general/shared-mime-info.html" title=
        "shared-mime-info-1.15">shared-mime-info-1.15</a>, <a class="xref"
        href="../general/perl-modules.html#perl-uri" title=
        "URI-1.76">URI-1.76</a>, and <a class="xref" href=
        "../basicnet/wget.html" title="Wget-1.20.3">Wget-1.20.3</a> (required
        to download the packages)
      </p>
      <h4>
        Recommended
      </h4>
      <p class="recommended">
        <a class="xref" href="../general/aspell.html" title=
        "Aspell-0.60.8">Aspell-0.60.8</a> (Dictionary backend for Sonnet),
        <a class="xref" href="../basicnet/avahi.html" title=
        "Avahi-0.8">Avahi-0.8</a> (DNS-SD backend for KDNSSD), <a class=
        "xref" href="libdbusmenu-qt.html" title=
        "libdbusmenu-qt-0.9.3+16.04.20160218">libdbusmenu-qt-0.9.3+16.04.20160218</a>
        (built with qt5), <a class="xref" href=
        "../basicnet/networkmanager.html" title=
        "NetworkManager-1.22.10">NetworkManager-1.22.10</a> (needed to build
        NetworkManager-Qt), and <a class="xref" href="polkit-qt.html" title=
        "Polkit-Qt-0.112.0">polkit-qt-0.112.0</a> (Authentication backend for
        KAuth)
      </p>
      <p class="recommended">
        Furthermore, the instructions below assume that the environment has
        been set up as described in <a class="xref" href="kf5-intro.html"
        title="KDE Frameworks 5 Pre-installation Configuration">Introduction
        to KF5</a>.
      </p>
      <h4>
        Optional
      </h4>
      <p class="optional">
        <a class="xref" href="../general/bluez.html" title=
        "BlueZ-5.54">BlueZ-5.54</a> (needed to build Bluez-Qt), <a class=
        "xref" href="../general/ModemManager.html" title=
        "ModemManager-1.12.8">ModemManager-1.12.8</a> (needed to build
        ModemManager-Qt)
      </p>
      <h4>
        Runtime dependency for FrameworkIntegration
      </h4>
      <p class="optional">
        <a class="xref" href="../x/TTF-and-OTF-fonts.html#oxygen-fonts"
        title="Oxygen fonts">Oxygen fonts</a> and <a class="xref" href=
        "../x/TTF-and-OTF-fonts.html#noto-fonts" title="Noto fonts">Noto
        fonts</a>
      </p>
      <h4>
        Runtime dependencies for kapidox
      </h4>
      <p class="optional">
        <a class="xref" href="../general/doxygen.html" title=
        "Doxygen-1.8.17">Doxygen-1.8.17</a>, <a class="xref" href=
        "../general/python-modules.html#Jinja2" title=
        "Jinja2-2.11.1">Jinja2-2.11.1</a>, and <a class="xref" href=
        "../general/python-modules.html#PyYAML" title=
        "PyYAML-5.3.1">PyYAML-5.3.1</a>
      </p>
      <h4>
        Additional image formats support in KImageFormats
      </h4>
      <p class="optional">
        <a class="xref" href="../general/jasper.html" title=
        "JasPer-2.0.14">JasPer-2.0.14</a> and <a class="ulink" href=
        "http://www.openexr.com/">OpenEXR</a>
      </p>
      <h4>
        Optional dependencies for KIO
      </h4>
      <p class="optional">
        <a class="xref" href="../postlfs/mitkrb.html" title=
        "MIT Kerberos V5-1.18">MIT Kerberos V5-1.18</a>
      </p>
      <h4>
        Optional dependencies for Solid
      </h4>
      <p class="optional">
        <a class="xref" href="../general/udisks2.html" title=
        "UDisks-2.8.4">UDisks-2.8.4</a>, <a class="xref" href=
        "../general/upower.html" title="UPower-0.99.11">UPower-0.99.11</a>
        and <a class="ulink" href=
        "http://www.freedesktop.org/software/media-player-info/">media-player-info</a>
        (runtime)
      </p>
      <h4>
        Optional dependency for KWallet
      </h4>
      <p class="optional">
        <a class="ulink" href=
        "http://download.kde.org/stable/release-service/19.12.2/src">gpgmepp</a>
      </p>
      <h4>
        Optional dictionary backends for Sonnet
      </h4>
      <p class="optional">
        <a class="ulink" href="http://hspell.ivrix.org.il/">Hspell</a> and
        <a class="ulink" href="http://hunspell.sourceforge.net/">Hunspell</a>
      </p>
      <h4>
        Required dependencies for Prison
      </h4>
      <p class="optional">
        <a class="ulink" href=
        "http://libdmtx.sourceforge.net/">Datamatrix</a> and <a class="ulink"
        href="https://fukuchi.org/works/qrencode/">QRencode</a>
      </p>
      <p class="usernotes">
        User Notes: <a class="ulink" href=
        "http://wiki.linuxfromscratch.org/blfs/wiki/kf5">http://wiki.linuxfromscratch.org/blfs/wiki/kf5</a>
      </p>
      <div class="sect2" lang="en" xml:lang="en">
        <h2 class="sect2">
          Downloading KDE Frameworks
        </h2>
        <p>
          The easiest way to get the KDE Frameworks packages is to use a
          single <span class="command"><strong>wget</strong></span> to fetch
          them all at once:
        </p>
        <pre class="userinput">
<kbd class="command">url=http://download.kde.org/stable/frameworks/5.67/
wget -r -nH -nd -A '*.xz' -np $url</kbd>
<code class="literal">
The options used here are:
  -r            recurse through child directories
  -nH           disable generation of host-prefixed directories
  -nd           do not create a hierarchy of directories 
  -A '*.xz'     just get the *.xz files
  -np           don't get parent directories</code>
</pre>
      </div>
      <div class="sect2" lang="en" xml:lang="en">
        <h2 class="sect2">
          Setting Package Order
        </h2>
        <p>
          The order of building files is important due to internal
          dependencies. Create the list of files in the proper order as
          follows:
        </p>
        <pre class="userinput">
<kbd class="command">cat &gt; frameworks-5.67.0.md5 &lt;&lt; "EOF"
<code class="literal">d3b975029a5b53673ea6503a2d5ae177  attica-5.67.0.tar.xz
#f59f70433adc17145b6ce2e8ab0c416d  extra-cmake-modules-5.67.0.tar.xz
d2b51d5f9a5e31ca870df0c48e4960e9  kapidox-5.67.0.tar.xz
ca01da6d4bedb8fbe9b99600f8f45ed2  karchive-5.67.0.tar.xz
080f45c31980d514774161d1b4a30ff8  kcodecs-5.67.0.tar.xz
3a40f76617827bff8e0c99b93be01fc1  kconfig-5.67.0.tar.xz
5c35270ed01148af9038e62350e51e32  kcoreaddons-5.67.0.tar.xz
818dbca1b3536e931aed3f6a4fb9d955  kdbusaddons-5.67.0.tar.xz
11c8c768748b562b928754d596b0aec6  kdnssd-5.67.0.tar.xz
96b919dfe2aedb0a5747b64216c95fff  kguiaddons-5.67.0.tar.xz
e6a5226f42a3cc444938fb80a7463ab4  ki18n-5.67.0.tar.xz
8049864248f5ab73af529140a10b0386  kidletime-5.67.0.tar.xz
3d17d70e54a82063c032ee9efee45874  kimageformats-5.67.0.tar.xz
588eba3b0ff5768e5aeda6dd0dcdfc29  kitemmodels-5.67.0.tar.xz
76990691b3c57e9c02c5da55144764a4  kitemviews-5.67.0.tar.xz
3242e4364f2f21980f208c1685019fd0  kplotting-5.67.0.tar.xz
9616a12c63a1c65562e7f5b5fcb29e07  kwidgetsaddons-5.67.0.tar.xz
b1d0b95573ff7cfe1ff4d468e7f9fed6  kwindowsystem-5.67.0.tar.xz
00b66a3798bf1abb074b4147ee0e5b7c  networkmanager-qt-5.67.0.tar.xz
0598657737a55b535d4bb0dbb9bba889  solid-5.67.0.tar.xz
37f09137396721abad617571464b9d9a  sonnet-5.67.0.tar.xz
8ee447185a4e603cc409ee4218cee195  threadweaver-5.67.0.tar.xz
8677547f35f4d4720d41325fbd3a6336  kauth-5.67.0.tar.xz
eb09a60dd4b5753e2aeaa8087efa4bb4  kcompletion-5.67.0.tar.xz
bfaeba1fad5c8440e37f145b011cf03e  kcrash-5.67.0.tar.xz
6f9879d824b265096b8384ab5061ccca  kdoctools-5.67.0.tar.xz
4add397011f28a5a08c363f0a5d2ad60  kpty-5.67.0.tar.xz
dc0bf58b6239d93e8d65b6a635256fd1  kunitconversion-5.67.0.tar.xz
f00cf13031ae84283c16b56c400a51f7  kconfigwidgets-5.67.0.tar.xz
290466bdeddfc2c04c5a872a773d974d  kservice-5.67.0.tar.xz
b688a1639bc9497fb3787f9d93950bda  kglobalaccel-5.67.0.tar.xz
6bf9110d2c3746fdf0c70cc8451c3596  kpackage-5.67.0.tar.xz
a4d9df054c4f7d4672be9f12596d877e  kdesu-5.67.0.tar.xz
6a806ed9f1854c24dcaf653c7f91511e  kemoticons-5.67.0.tar.xz
fd90eda4d83598fefb87db83463cca1f  kiconthemes-5.67.0.tar.xz
3a8533dcb22764c9f80eb9957d530170  kjobwidgets-5.67.0.tar.xz
37d8e17a44cca54f8e937bd1b80231d3  knotifications-5.67.0.tar.xz
fe7fefbc23ca7eef85f95cbc54f193b3  ktextwidgets-5.67.0.tar.xz
4565a3d1f277653e41310a3ae26dcc1e  kxmlgui-5.67.0.tar.xz
1236b6fd559c9ac85e5c7d82fe5bbb02  kbookmarks-5.67.0.tar.xz
895e560a0b748dbb007ff45ec71ce85d  kwallet-5.67.0.tar.xz
b3cd883d9892f47dfbb7b2c29be0ff1b  kio-5.67.0.tar.xz
5f491d1b51cbafefff0d502c2818a1c9  kdeclarative-5.67.0.tar.xz
3fd40a72390912440c06289b5a17faa8  kcmutils-5.67.0.tar.xz
f9077200aa86833705a7f4250d61c0e6  kirigami2-5.67.0.tar.xz
0033e888f61c2f257e6e6f4a2011a976  knewstuff-5.67.0.tar.xz
6dc5c1e55e8ca4cc19e6faa8719b9cc4  frameworkintegration-5.67.0.tar.xz
646771a2d35f1af7c5d0f4cfb3f80179  kinit-5.67.0.tar.xz
6e43a6a6cf0a60eb8f31269834795fc4  knotifyconfig-5.67.0.tar.xz
cc3125f7ae87b52e62571040749a4732  kparts-5.67.0.tar.xz
37a1c1995cd80c8c5d53de70f9fe61ed  kactivities-5.67.0.tar.xz
5857f91c556d03fa6178ddc7d2d6a3dd  kded-5.67.0.tar.xz
#a447900424cd04dbaf49e8bf9617f6dc  kdewebkit-5.67.0.tar.xz
91319edc9d27393df6812d60f1505b99  syntax-highlighting-5.67.0.tar.xz
de9f38ec3ad76a5f19b4fc665dee5b82  ktexteditor-5.67.0.tar.xz
923482f22930286d7f99af334c3a2181  kdesignerplugin-5.67.0.tar.xz
5141cdc1fcd46d43ac0043c10112be2b  kwayland-5.67.0.tar.xz
5203954a541766bd0def96fe2ddc1d05  plasma-framework-5.67.0.tar.xz
#f7b27e1fb53fbf7ccc3fabb3469b2ac3  modemmanager-qt-5.67.0.tar.xz
aa74dc95497e27a322668df02c21ba6f  kpeople-5.67.0.tar.xz
604ee822d3c31c025ea90a64692db277  kxmlrpcclient-5.67.0.tar.xz
4bf38a4919ea975deb71197c57a8edf0  bluez-qt-5.67.0.tar.xz
6fa27bb4fb5e3a08bc58b6d67e4ca396  kfilemetadata-5.67.0.tar.xz
05d339861c1b9082dc7b8f4822167954  baloo-5.67.0.tar.xz
#18d27b2f7d443a6e7e4fdc41a3fb9ae4  breeze-icons-5.67.0.tar.xz
#4d74544c61cb1db49a6b10da6835ec88  oxygen-icons5-5.67.0.tar.xz
b89c11f239048e4d65b4781fbc660a41  kactivities-stats-5.67.0.tar.xz
9da490e8e8ccfed43206d18a176019f8  krunner-5.67.0.tar.xz
#181d901dbda09ee7d26fd234eef56ed4  prison-5.67.0.tar.xz
46b9c80d3ef84a26803d47fc57426158  qqc2-desktop-style-5.67.0.tar.xz
b8352b2a459df37ac5fc8b5be5674d08  kjs-5.67.0.tar.xz
aa5d6287fdae772c72ac15bb56315e53  kdelibs4support-5.67.0.tar.xz
8c4ec0e9a3ac90622c64ecc0e3329d91  khtml-5.67.0.tar.xz
10163d7d799db8cc90afcb7f2acb89d8  kjsembed-5.67.0.tar.xz
88c78b268916199328c381de5d65020b  kmediaplayer-5.67.0.tar.xz
46ded68727de15c4d66ce29b4bb15831  kross-5.67.0.tar.xz
3d1831377c10ca2f90a5edd133501f84  kholidays-5.67.0.tar.xz
4039367834bc9039a84261b5a8d9912c  purpose-5.67.0.tar.xz
59240be3b390227198e8d94f5ae87fe8  syndication-5.67.0.tar.xz
91aadb3a165ac2ec1f5ab01f523bdeed  kcalendarcore-5.67.0.tar.xz
a8f99a97898c0489577204f219c7a5a3  kcontacts-5.67.0.tar.xz
b07cef12653a85091fadd25260942cf6  kquickcharts-5.67.0.tar.xz</code>
EOF</kbd>
</pre>
        <p>
          In the above list, notice that some files have been commented out
          with a hash (#) character. The extra-cmake-modules entry has been
          commented out because it was built earlier in the <a class="xref"
          href="introduction.html" title=
          "Chapter&nbsp;29.&nbsp;Introduction to KDE">Introduction to
          KDE</a>. The icon packages are covered separately at <a class=
          "xref" href="../x/breeze-icons.html" title=
          "breeze-icons-5.67.0">breeze-icons-5.67.0</a> and <a class="xref"
          href="../x/oxygen-icons5.html" title=
          "oxygen-icons5-5.67.0">oxygen-icons5-5.67.0</a>. The
          modemmanager-qt package may be built if its optional dependency has
          been installed. The prison package (bar code reader) may be built
          if the required external libraries are installed. The kdewebkit may
          be built if the external package <a class="ulink" href=
          "https://download.qt.io/community_releases/5.9/5.9.0-final/">QtWebkit</a>
          has been built.
        </p>
      </div>
      <div class="installation" lang="en" xml:lang="en">
        <h2 class="sect2">
          Installation of KDE Frameworks
        </h2>
        <div class="admon note">
          <img alt="[Note]" src="../images/note.png" />
          <h3>
            Note
          </h3>
          <p>
            When installing multiple packages in a script, the installation
            needs to be done as the root user. There are three general
            options that can be used to do this:
          </p>
          <div class="orderedlist">
            <ol>
              <li class="listitem">
                <p>
                  Run the entire script as the root user (not recommended).
                </p>
              </li>
              <li class="listitem">
                <p>
                  Use the <span class="command"><strong>sudo</strong></span>
                  command from the <a class="xref" href=
                  "../postlfs/sudo.html" title=
                  "Sudo-1.8.31p1">Sudo-1.8.31p1</a> package.
                </p>
              </li>
              <li class="listitem">
                <p>
                  Use <span class="command"><strong>su -c "command
                  arguments"</strong></span> (quotes required) which will ask
                  for the root password for every iteration of the loop.
                </p>
              </li>
            </ol>
          </div>
          <p>
            One way to handle this situation is to create a short
            <span class="command"><strong>bash</strong></span> function that
            automatically selects the appropriate method. Once the command is
            set in the environment, it does not need to be set again.
          </p>
          <pre class="userinput">
<kbd class="command">as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}

export -f as_root</kbd>
</pre>
        </div>
        <div class="admon caution">
          <img alt="[Caution]" src="../images/caution.png" />
          <h3>
            Caution
          </h3>
          <p>
            If installing in <code class="filename">/opt</code> and there is
            an existing /opt/kf5 either as a regular directory or a symbolic
            link, it should be reinitialized (as <code class=
            "systemitem">root</code>):
          </p>
          <pre class="root">
<kbd class=
"command">mv -v /opt/kf5 /opt/kf5.old                         &amp;&amp;
install -v -dm755           $KF5_PREFIX/{etc,share} &amp;&amp;
ln -sfv /etc/dbus-1         $KF5_PREFIX/etc         &amp;&amp;
ln -sfv /usr/share/dbus-1   $KF5_PREFIX/share</kbd>
</pre>
        </div>
        <p>
          First, start a subshell that will exit on error:
        </p>
        <pre class="userinput">
<kbd class="command">bash -e</kbd>
</pre>
        <p>
          Install all of the packages by running the following commands:
        </p>
        <pre class="userinput">
<kbd class="command">while read -r line; do

    # Get the file name, ignoring comments and blank lines
    if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi
    file=$(echo $line | cut -d" " -f2)

    pkg=$(echo $file|sed 's|^.*/||')          # Remove directory
    packagedir=$(echo $pkg|sed 's|\.tar.*||') # Package directory

    name=$(echo $pkg|sed 's|-5.*$||') # Isolate package name

    tar -xf $file
    pushd $packagedir

      case $name in
        kitemviews*) sed -i '/&lt;QList&gt;/a #include &lt;QPersistentModelIndex&gt;' \
          src/kwidgetitemdelegatepool_p.h ;;
        kplotting*) sed -i '/&lt;QHash&gt;/a #include &lt;QHelpEvent&gt;' \
          src/kplotwidget.cpp ;;
        knotifica*) sed -i '/&lt;QUrl&gt;/a #include &lt;QVariant&gt;' \
          src/knotification.h ;;
        kcompleti*) sed -i '/&lt;QClipboard&gt;/a #include &lt;QKeyEvent&gt;' \
          src/klineedit.cpp ;;
        kwayland*) sed -i '/&lt;wayland-xdg-output-server-proto/a #include &lt;QHash&gt;' \
          src/server/xdgoutput_interface.cpp ;;
      esac  

      mkdir build
      cd    build

      cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
            -DCMAKE_PREFIX_PATH=$QT5DIR        \
            -DCMAKE_BUILD_TYPE=Release         \
            -DBUILD_TESTING=OFF                \
            -Wno-dev ..
      make
      as_root make install
    popd

  as_root rm -rf $packagedir
  as_root /sbin/ldconfig

done &lt; frameworks-5.67.0.md5

exit</kbd>
</pre>
        <div class="admon note">
          <img alt="[Note]" src="../images/note.png" />
          <h3>
            Note
          </h3>
          <p>
            Any modules that have been omitted can be installed later by
            using the same <span class="command"><strong>mkdir build; cd
            build; cmake; make; make install</strong></span> procedure as
            above.
          </p>
        </div>
        <p>
          Sometimes the installation paths are hardcoded into installed
          files. If the installed directory is not /usr, rename the directory
          and create a symlink:
        </p>
        <pre class="root">
<kbd class="command">mv -v /opt/kf5 /opt/kf5-5.67.0
ln -sfvn kf5-5.67.0 /opt/kf5</kbd>
</pre>
      </div>
      <div class="commands" lang="en" xml:lang="en">
        <h2 class="sect2">
          Command Explanations
        </h2>
        <p>
          <span class="command"><strong>case ...</strong></span>: Those
          modifications are required to build with <a class="xref" href=
          "../x/qt5.html" title="Qt-5.14.1">Qt-5.14.1</a>.
        </p>
        <p>
          <em class=
          "parameter"><code>-DCMAKE_PREFIX_PATH=$QT5DIR</code></em>: This
          switch is used to allow cmake to find the proper Qt libraries.
        </p>
        <p>
          <em class="parameter"><code>-DCMAKE_BUILD_TYPE=Release</code></em>:
          This switch is used to apply higher level of the compiler
          optimizations.
        </p>
        <p>
          <em class="parameter"><code>-DBUILD_TESTING=OFF</code></em>: This
          switch is used to prevent building test programs and libraries that
          are of no use to an end user.
        </p>
      </div>
      <div class="content" lang="en" xml:lang="en">
        <h2 class="sect2">
          Contents
        </h2>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">Installed Programs:</strong>
              <span class="segbody">There are 48 programs installed in
              /opt/kf5/bin.</span>
            </div>
            <div class="seg">
              <strong class="segtitle">Installed Libraries:</strong>
              <span class="segbody">There are too many kf5 libraries (191) to
              list separately.</span>
            </div>
            <div class="seg">
              <strong class="segtitle">Installed Directories:</strong>
              <span class="segbody">/opt/kf5 (symlink to
              /opt/kf5-5.67.0)</span>
            </div>
          </div>
        </div>
        <div class="variablelist">
          <h3>
            Short Descriptions
          </h3>
          <table border="0" class="variablelist">
            <colgroup>
              <col align="left" valign="top" />
              <col />
            </colgroup>
            <tbody>
              <tr>
                <td>
                  <p>
                    <a id="checkXML5" name="checkXML5"></a><span class=
                    "term"><span class=
                    "command"><strong>checkXML5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a tool to check for syntax errors in KDE DocBook XML
                    files.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="depdiagram-generate" name=
                    "depdiagram-generate"></a><span class="term"><span class=
                    "command"><strong>depdiagram-generate</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a tool to generate a dependency diagram.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="depdiagram-generate-all" name=
                    "depdiagram-generate-all"></a><span class=
                    "term"><span class=
                    "command"><strong>depdiagram-generate-all</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a tool to generate a dependency diagram for all
                    frameworks at once.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="depdiagram-prepare" name=
                    "depdiagram-prepare"></a><span class="term"><span class=
                    "command"><strong>depdiagram-prepare</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a tool to prepare dot files.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="desktoptojson" name=
                    "desktoptojson"></a><span class="term"><span class=
                    "command"><strong>desktoptojson</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a tool to convert a .desktop file to a .json file.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kactivitymanagerd" name=
                    "kactivitymanagerd"></a><span class="term"><span class=
                    "command"><strong>kactivitymanagerd</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is the KDE Plasma Workspace Activity Manager.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kbuildsycoca5" name=
                    "kbuildsycoca5"></a><span class="term"><span class=
                    "command"><strong>kbuildsycoca5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    rebuilds the KService desktop file system configuration
                    cache.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kcookiejar5" name="kcookiejar5"></a><span class=
                    "term"><span class=
                    "command"><strong>kcookiejar5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a command line interface to the HTTP cookie store used
                    by KDE, a D-BUS service to store/retrieve/clean cookies.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kded5" name="kded5"></a><span class=
                    "term"><span class=
                    "command"><strong>kded5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    consolidates several small services in one process.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kdeinit5" name="kdeinit5"></a><span class=
                    "term"><span class=
                    "command"><strong>kdeinit5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a process launcher somewhat similar to the famous init
                    used for booting UNIX.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kf5-config" name="kf5-config"></a><span class=
                    "term"><span class=
                    "command"><strong>kf5-config</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a command line program used to retrieve information
                    about KDE installation or user paths.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kf5kross" name="kf5kross"></a><span class=
                    "term"><span class=
                    "command"><strong>kf5kross</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    executes kross scripts written in KDE Javascript, Python,
                    Ruby, Java and Falcon.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kgenapidox" name="kgenapidox"></a><span class=
                    "term"><span class=
                    "command"><strong>kgenapidox</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a tool to generate API documentation in the KDE style.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kgendesignerplugin" name=
                    "kgendesignerplugin"></a><span class="term"><span class=
                    "command"><strong>kgendesignerplugin</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    generates widget plugins for Qt(TM) Designer.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kglobalaccel5" name=
                    "kglobalaccel5"></a><span class="term"><span class=
                    "command"><strong>kglobalaccel5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a daemon use to register the key bindings and for
                    getting notified when the action triggered.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kjs5" name="kjs5"></a><span class=
                    "term"><span class=
                    "command"><strong>kjs5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is KDE ECMAScript/JavaScript engine.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kjscmd5" name="kjscmd5"></a><span class=
                    "term"><span class=
                    "command"><strong>kjscmd5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a tool for launching KJSEmbed scripts from the command
                    line.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kjsconsole" name="kjsconsole"></a><span class=
                    "term"><span class=
                    "command"><strong>kjsconsole</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a console for <span class=
                    "command"><strong>kjs5</strong></span>.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kmailservice5" name=
                    "kmailservice5"></a><span class="term"><span class=
                    "command"><strong>kmailservice5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a mail service.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kpackagelauncherqml" name=
                    "kpackagelauncherqml"></a><span class="term"><span class=
                    "command"><strong>kpackagelauncherqml</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a commandline tool for launching kpackage QML
                    application
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kpackagetool5" name=
                    "kpackagetool5"></a><span class="term"><span class=
                    "command"><strong>kpackagetool5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a command line kpackage tool.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kreadconfig5" name="kreadconfig5"></a><span class=
                    "term"><span class=
                    "command"><strong>kreadconfig5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a command line tool to retrieve values from KDE
                    configuration files.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kshell5" name="kshell5"></a><span class=
                    "term"><span class=
                    "command"><strong>kshell5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    start applications via kdeinit.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="ktelnetservice5" name=
                    "ktelnetservice5"></a><span class="term"><span class=
                    "command"><strong>ktelnetservice5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a telnet service.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="ktrash5" name="ktrash5"></a><span class=
                    "term"><span class=
                    "command"><strong>ktrash5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a helper program to handle the KDE trash can.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kwalletd5" name="kwalletd5"></a><span class=
                    "term"><span class=
                    "command"><strong>kwalletd5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is the wallet manager daemon.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="kwriteconfig5" name=
                    "kwriteconfig5"></a><span class="term"><span class=
                    "command"><strong>kwriteconfig5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a command line tool to write values in KDE
                    configuration files.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="meinproc5" name="meinproc5"></a><span class=
                    "term"><span class=
                    "command"><strong>meinproc5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    converts DocBook files to HTML.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="plasmapkg2" name="plasmapkg2"></a><span class=
                    "term"><span class=
                    "command"><strong>plasmapkg2</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a tool to install, list, remove Plasma packages
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="preparetips5" name="preparetips5"></a><span class=
                    "term"><span class=
                    "command"><strong>preparetips5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a script to extract the text from a tips file.
                  </p>
                </td>
              </tr>
              <tr>
                <td>
                  <p>
                    <a id="solid-hardware5" name=
                    "solid-hardware5"></a><span class="term"><span class=
                    "command"><strong>solid-hardware5</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is a command line tool to investigate available devices.
                  </p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <p class="updated">
        Last updated on 2020-03-24 14:19:44 -0500
      </p>
    </div>
    <div class="navfooter">
      <ul>
        <li class="prev">
          <a accesskey="p" href="kf5-intro.html" title=
          "KDE Frameworks 5 Pre-installation Configuration">Prev</a>
          <p>
            KDE Frameworks 5 Pre-installation Configuration
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="kf5-apps.html" title=
          "KDE Frameworks 5 Based Applications">Next</a>
          <p>
            KDE Frameworks 5 Based Applications
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="kf5.html" title=
          "Chapter&nbsp;30.&nbsp;KDE Frameworks 5">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Beyond Linux� From Scratch     (System V Edition) - Version 2020-04-02">
          Home</a>
        </li>
      </ul>
    </div>
  </body>
</html>
